<?php

/*
 * 基础类
 * @author php_angel <php_angel@126.com>
 * @date 2012-07-15
 */
 
class Base {

	//配置信息，需要指定，用来覆盖默认值
	protected $defaults = array();
	
	//错误信息
	protected $error = '';
	
	/*
	 * 设置配置信息
	 * @access public
	 * @param $config array 配置信息
	 * @return void
	 */
	public function config($config = array(), $defaults = array())
	{
		if ( ! $defaults || ! is_array($defaults))
		{
			$defaults = $this->defaults;
		}
		
		if ($config && is_array($config))
		{
			foreach ($config as $key => $value)
			{
				if (is_string($key) && isset($this->$key) && in_array($key, $defaults))
				{
					$method = 'set_'.$key;
					if (method_exists($this, $method))
					{
						$this->$method($value);
					}
					else
					{
						$this->$key = $value;
					}
				}
			}
		}
	}
	
	/*
	 * 重置配置信息
	 * @access public
	 * @return void
	 */
	public function reset()
	{
		$resets = get_class_vars(get_class($this));
		if ($resets)
		{
			foreach ($resets as $key => $value)
			{
				$this->$key = $value;
			}
		}
	}
	
	/*
	 * 设置错误信息
	 * @access public
	 * @param $error mixed 错误信息
	 * @return void
	 */
	public function set_error($error)
	{
		$this->error = $error;
	}
	
	/*
	 * 返回错误信息
	 * @access public
	 * @return mixed
	 */
	public function get_error()
	{
		return $this->error;
	}
	
}